package com.shelpe.services.simbasync.model;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class OrderCustomerExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public OrderCustomerExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Long value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Long value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Long value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Long value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Long value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Long> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Long> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Long value1, Long value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Long value1, Long value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andNickIsNull() {
            addCriterion("nick is null");
            return (Criteria) this;
        }

        public Criteria andNickIsNotNull() {
            addCriterion("nick is not null");
            return (Criteria) this;
        }

        public Criteria andNickEqualTo(String value) {
            addCriterion("nick =", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickNotEqualTo(String value) {
            addCriterion("nick <>", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickGreaterThan(String value) {
            addCriterion("nick >", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickGreaterThanOrEqualTo(String value) {
            addCriterion("nick >=", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickLessThan(String value) {
            addCriterion("nick <", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickLessThanOrEqualTo(String value) {
            addCriterion("nick <=", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickLike(String value) {
            addCriterion("nick like", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickNotLike(String value) {
            addCriterion("nick not like", value, "nick");
            return (Criteria) this;
        }

        public Criteria andNickIn(List<String> values) {
            addCriterion("nick in", values, "nick");
            return (Criteria) this;
        }

        public Criteria andNickNotIn(List<String> values) {
            addCriterion("nick not in", values, "nick");
            return (Criteria) this;
        }

        public Criteria andNickBetween(String value1, String value2) {
            addCriterion("nick between", value1, value2, "nick");
            return (Criteria) this;
        }

        public Criteria andNickNotBetween(String value1, String value2) {
            addCriterion("nick not between", value1, value2, "nick");
            return (Criteria) this;
        }

        public Criteria andItemCodeIsNull() {
            addCriterion("item_code is null");
            return (Criteria) this;
        }

        public Criteria andItemCodeIsNotNull() {
            addCriterion("item_code is not null");
            return (Criteria) this;
        }

        public Criteria andItemCodeEqualTo(String value) {
            addCriterion("item_code =", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeNotEqualTo(String value) {
            addCriterion("item_code <>", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeGreaterThan(String value) {
            addCriterion("item_code >", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeGreaterThanOrEqualTo(String value) {
            addCriterion("item_code >=", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeLessThan(String value) {
            addCriterion("item_code <", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeLessThanOrEqualTo(String value) {
            addCriterion("item_code <=", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeLike(String value) {
            addCriterion("item_code like", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeNotLike(String value) {
            addCriterion("item_code not like", value, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeIn(List<String> values) {
            addCriterion("item_code in", values, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeNotIn(List<String> values) {
            addCriterion("item_code not in", values, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeBetween(String value1, String value2) {
            addCriterion("item_code between", value1, value2, "itemCode");
            return (Criteria) this;
        }

        public Criteria andItemCodeNotBetween(String value1, String value2) {
            addCriterion("item_code not between", value1, value2, "itemCode");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToIsNull() {
            addCriterion("authorized_to is null");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToIsNotNull() {
            addCriterion("authorized_to is not null");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToEqualTo(Long value) {
            addCriterion("authorized_to =", value, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToNotEqualTo(Long value) {
            addCriterion("authorized_to <>", value, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToGreaterThan(Long value) {
            addCriterion("authorized_to >", value, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToGreaterThanOrEqualTo(Long value) {
            addCriterion("authorized_to >=", value, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToLessThan(Long value) {
            addCriterion("authorized_to <", value, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToLessThanOrEqualTo(Long value) {
            addCriterion("authorized_to <=", value, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToIn(List<Integer> values) {
            addCriterion("authorized_to in", values, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToNotIn(List<Long> values) {
            addCriterion("authorized_to not in", values, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToBetween(Long value1, Long value2) {
            addCriterion("authorized_to between", value1, value2, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andAuthorizedToNotBetween(Long value1, Long value2) {
            addCriterion("authorized_to not between", value1, value2, "authorizedTo");
            return (Criteria) this;
        }

        public Criteria andInitIsNull() {
            addCriterion("init is null");
            return (Criteria) this;
        }

        public Criteria andInitIsNotNull() {
            addCriterion("init is not null");
            return (Criteria) this;
        }

        public Criteria andInitEqualTo(Boolean value) {
            addCriterion("init =", value, "init");
            return (Criteria) this;
        }

        public Criteria andInitNotEqualTo(Boolean value) {
            addCriterion("init <>", value, "init");
            return (Criteria) this;
        }

        public Criteria andInitGreaterThan(Boolean value) {
            addCriterion("init >", value, "init");
            return (Criteria) this;
        }

        public Criteria andInitGreaterThanOrEqualTo(Boolean value) {
            addCriterion("init >=", value, "init");
            return (Criteria) this;
        }

        public Criteria andInitLessThan(Boolean value) {
            addCriterion("init <", value, "init");
            return (Criteria) this;
        }

        public Criteria andInitLessThanOrEqualTo(Boolean value) {
            addCriterion("init <=", value, "init");
            return (Criteria) this;
        }

        public Criteria andInitIn(List<Boolean> values) {
            addCriterion("init in", values, "init");
            return (Criteria) this;
        }

        public Criteria andInitNotIn(List<Boolean> values) {
            addCriterion("init not in", values, "init");
            return (Criteria) this;
        }

        public Criteria andInitBetween(Boolean value1, Boolean value2) {
            addCriterion("init between", value1, value2, "init");
            return (Criteria) this;
        }

        public Criteria andInitNotBetween(Boolean value1, Boolean value2) {
            addCriterion("init not between", value1, value2, "init");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersIsNull() {
            addCriterion("authorized_users is null");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersIsNotNull() {
            addCriterion("authorized_users is not null");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersEqualTo(String value) {
            addCriterion("authorized_users =", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersNotEqualTo(String value) {
            addCriterion("authorized_users <>", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersGreaterThan(String value) {
            addCriterion("authorized_users >", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersGreaterThanOrEqualTo(String value) {
            addCriterion("authorized_users >=", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersLessThan(String value) {
            addCriterion("authorized_users <", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersLessThanOrEqualTo(String value) {
            addCriterion("authorized_users <=", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersLike(String value) {
            addCriterion("authorized_users like", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersNotLike(String value) {
            addCriterion("authorized_users not like", value, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersIn(List<String> values) {
            addCriterion("authorized_users in", values, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersNotIn(List<String> values) {
            addCriterion("authorized_users not in", values, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersBetween(String value1, String value2) {
            addCriterion("authorized_users between", value1, value2, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andAuthorizedUsersNotBetween(String value1, String value2) {
            addCriterion("authorized_users not between", value1, value2, "authorizedUsers");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresIsNull() {
            addCriterion("purchase_expires is null");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresIsNotNull() {
            addCriterion("purchase_expires is not null");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresEqualTo(Date value) {
            addCriterion("purchase_expires =", value, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresNotEqualTo(Date value) {
            addCriterion("purchase_expires <>", value, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresGreaterThan(Date value) {
            addCriterion("purchase_expires >", value, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresGreaterThanOrEqualTo(Date value) {
            addCriterion("purchase_expires >=", value, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresLessThan(Date value) {
            addCriterion("purchase_expires <", value, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresLessThanOrEqualTo(Date value) {
            addCriterion("purchase_expires <=", value, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresIn(List<Date> values) {
            addCriterion("purchase_expires in", values, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresNotIn(List<Date> values) {
            addCriterion("purchase_expires not in", values, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresBetween(Date value1, Date value2) {
            addCriterion("purchase_expires between", value1, value2, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andPurchaseExpiresNotBetween(Date value1, Date value2) {
            addCriterion("purchase_expires not between", value1, value2, "purchaseExpires");
            return (Criteria) this;
        }

        public Criteria andBalanceIsNull() {
            addCriterion("balance is null");
            return (Criteria) this;
        }

        public Criteria andBalanceIsNotNull() {
            addCriterion("balance is not null");
            return (Criteria) this;
        }

        public Criteria andBalanceEqualTo(BigDecimal value) {
            addCriterion("balance =", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceNotEqualTo(BigDecimal value) {
            addCriterion("balance <>", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceGreaterThan(BigDecimal value) {
            addCriterion("balance >", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("balance >=", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceLessThan(BigDecimal value) {
            addCriterion("balance <", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("balance <=", value, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceIn(List<BigDecimal> values) {
            addCriterion("balance in", values, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceNotIn(List<BigDecimal> values) {
            addCriterion("balance not in", values, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("balance between", value1, value2, "balance");
            return (Criteria) this;
        }

        public Criteria andBalanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("balance not between", value1, value2, "balance");
            return (Criteria) this;
        }

        public Criteria andImpressionsIsNull() {
            addCriterion("impressions is null");
            return (Criteria) this;
        }

        public Criteria andImpressionsIsNotNull() {
            addCriterion("impressions is not null");
            return (Criteria) this;
        }

        public Criteria andImpressionsEqualTo(Integer value) {
            addCriterion("impressions =", value, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsNotEqualTo(Integer value) {
            addCriterion("impressions <>", value, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsGreaterThan(Integer value) {
            addCriterion("impressions >", value, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsGreaterThanOrEqualTo(Integer value) {
            addCriterion("impressions >=", value, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsLessThan(Integer value) {
            addCriterion("impressions <", value, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsLessThanOrEqualTo(Integer value) {
            addCriterion("impressions <=", value, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsIn(List<Integer> values) {
            addCriterion("impressions in", values, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsNotIn(List<Integer> values) {
            addCriterion("impressions not in", values, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsBetween(Integer value1, Integer value2) {
            addCriterion("impressions between", value1, value2, "impressions");
            return (Criteria) this;
        }

        public Criteria andImpressionsNotBetween(Integer value1, Integer value2) {
            addCriterion("impressions not between", value1, value2, "impressions");
            return (Criteria) this;
        }

        public Criteria andClickIsNull() {
            addCriterion("click is null");
            return (Criteria) this;
        }

        public Criteria andClickIsNotNull() {
            addCriterion("click is not null");
            return (Criteria) this;
        }

        public Criteria andClickEqualTo(Integer value) {
            addCriterion("click =", value, "click");
            return (Criteria) this;
        }

        public Criteria andClickNotEqualTo(Integer value) {
            addCriterion("click <>", value, "click");
            return (Criteria) this;
        }

        public Criteria andClickGreaterThan(Integer value) {
            addCriterion("click >", value, "click");
            return (Criteria) this;
        }

        public Criteria andClickGreaterThanOrEqualTo(Integer value) {
            addCriterion("click >=", value, "click");
            return (Criteria) this;
        }

        public Criteria andClickLessThan(Integer value) {
            addCriterion("click <", value, "click");
            return (Criteria) this;
        }

        public Criteria andClickLessThanOrEqualTo(Integer value) {
            addCriterion("click <=", value, "click");
            return (Criteria) this;
        }

        public Criteria andClickIn(List<Integer> values) {
            addCriterion("click in", values, "click");
            return (Criteria) this;
        }

        public Criteria andClickNotIn(List<Integer> values) {
            addCriterion("click not in", values, "click");
            return (Criteria) this;
        }

        public Criteria andClickBetween(Integer value1, Integer value2) {
            addCriterion("click between", value1, value2, "click");
            return (Criteria) this;
        }

        public Criteria andClickNotBetween(Integer value1, Integer value2) {
            addCriterion("click not between", value1, value2, "click");
            return (Criteria) this;
        }

        public Criteria andCostIsNull() {
            addCriterion("cost is null");
            return (Criteria) this;
        }

        public Criteria andCostIsNotNull() {
            addCriterion("cost is not null");
            return (Criteria) this;
        }

        public Criteria andCostEqualTo(BigDecimal value) {
            addCriterion("cost =", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostNotEqualTo(BigDecimal value) {
            addCriterion("cost <>", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostGreaterThan(BigDecimal value) {
            addCriterion("cost >", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("cost >=", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostLessThan(BigDecimal value) {
            addCriterion("cost <", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostLessThanOrEqualTo(BigDecimal value) {
            addCriterion("cost <=", value, "cost");
            return (Criteria) this;
        }

        public Criteria andCostIn(List<BigDecimal> values) {
            addCriterion("cost in", values, "cost");
            return (Criteria) this;
        }

        public Criteria andCostNotIn(List<BigDecimal> values) {
            addCriterion("cost not in", values, "cost");
            return (Criteria) this;
        }

        public Criteria andCostBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cost between", value1, value2, "cost");
            return (Criteria) this;
        }

        public Criteria andCostNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cost not between", value1, value2, "cost");
            return (Criteria) this;
        }

        public Criteria andCpcIsNull() {
            addCriterion("cpc is null");
            return (Criteria) this;
        }

        public Criteria andCpcIsNotNull() {
            addCriterion("cpc is not null");
            return (Criteria) this;
        }

        public Criteria andCpcEqualTo(BigDecimal value) {
            addCriterion("cpc =", value, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcNotEqualTo(BigDecimal value) {
            addCriterion("cpc <>", value, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcGreaterThan(BigDecimal value) {
            addCriterion("cpc >", value, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("cpc >=", value, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcLessThan(BigDecimal value) {
            addCriterion("cpc <", value, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcLessThanOrEqualTo(BigDecimal value) {
            addCriterion("cpc <=", value, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcIn(List<BigDecimal> values) {
            addCriterion("cpc in", values, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcNotIn(List<BigDecimal> values) {
            addCriterion("cpc not in", values, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cpc between", value1, value2, "cpc");
            return (Criteria) this;
        }

        public Criteria andCpcNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cpc not between", value1, value2, "cpc");
            return (Criteria) this;
        }

        public Criteria andRoiIsNull() {
            addCriterion("roi is null");
            return (Criteria) this;
        }

        public Criteria andRoiIsNotNull() {
            addCriterion("roi is not null");
            return (Criteria) this;
        }

        public Criteria andRoiEqualTo(BigDecimal value) {
            addCriterion("roi =", value, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiNotEqualTo(BigDecimal value) {
            addCriterion("roi <>", value, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiGreaterThan(BigDecimal value) {
            addCriterion("roi >", value, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("roi >=", value, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiLessThan(BigDecimal value) {
            addCriterion("roi <", value, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiLessThanOrEqualTo(BigDecimal value) {
            addCriterion("roi <=", value, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiIn(List<BigDecimal> values) {
            addCriterion("roi in", values, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiNotIn(List<BigDecimal> values) {
            addCriterion("roi not in", values, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("roi between", value1, value2, "roi");
            return (Criteria) this;
        }

        public Criteria andRoiNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("roi not between", value1, value2, "roi");
            return (Criteria) this;
        }

        public Criteria andCvrIsNull() {
            addCriterion("cvr is null");
            return (Criteria) this;
        }

        public Criteria andCvrIsNotNull() {
            addCriterion("cvr is not null");
            return (Criteria) this;
        }

        public Criteria andCvrEqualTo(BigDecimal value) {
            addCriterion("cvr =", value, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrNotEqualTo(BigDecimal value) {
            addCriterion("cvr <>", value, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrGreaterThan(BigDecimal value) {
            addCriterion("cvr >", value, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("cvr >=", value, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrLessThan(BigDecimal value) {
            addCriterion("cvr <", value, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrLessThanOrEqualTo(BigDecimal value) {
            addCriterion("cvr <=", value, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrIn(List<BigDecimal> values) {
            addCriterion("cvr in", values, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrNotIn(List<BigDecimal> values) {
            addCriterion("cvr not in", values, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cvr between", value1, value2, "cvr");
            return (Criteria) this;
        }

        public Criteria andCvrNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("cvr not between", value1, value2, "cvr");
            return (Criteria) this;
        }

        public Criteria andSalesIsNull() {
            addCriterion("sales is null");
            return (Criteria) this;
        }

        public Criteria andSalesIsNotNull() {
            addCriterion("sales is not null");
            return (Criteria) this;
        }

        public Criteria andSalesEqualTo(BigDecimal value) {
            addCriterion("sales =", value, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesNotEqualTo(BigDecimal value) {
            addCriterion("sales <>", value, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesGreaterThan(BigDecimal value) {
            addCriterion("sales >", value, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("sales >=", value, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesLessThan(BigDecimal value) {
            addCriterion("sales <", value, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesLessThanOrEqualTo(BigDecimal value) {
            addCriterion("sales <=", value, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesIn(List<BigDecimal> values) {
            addCriterion("sales in", values, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesNotIn(List<BigDecimal> values) {
            addCriterion("sales not in", values, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("sales between", value1, value2, "sales");
            return (Criteria) this;
        }

        public Criteria andSalesNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("sales not between", value1, value2, "sales");
            return (Criteria) this;
        }

        public Criteria andCtrIsNull() {
            addCriterion("ctr is null");
            return (Criteria) this;
        }

        public Criteria andCtrIsNotNull() {
            addCriterion("ctr is not null");
            return (Criteria) this;
        }

        public Criteria andCtrEqualTo(BigDecimal value) {
            addCriterion("ctr =", value, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrNotEqualTo(BigDecimal value) {
            addCriterion("ctr <>", value, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrGreaterThan(BigDecimal value) {
            addCriterion("ctr >", value, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ctr >=", value, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrLessThan(BigDecimal value) {
            addCriterion("ctr <", value, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ctr <=", value, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrIn(List<BigDecimal> values) {
            addCriterion("ctr in", values, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrNotIn(List<BigDecimal> values) {
            addCriterion("ctr not in", values, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ctr between", value1, value2, "ctr");
            return (Criteria) this;
        }

        public Criteria andCtrNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ctr not between", value1, value2, "ctr");
            return (Criteria) this;
        }

        public Criteria andDirectPayIsNull() {
            addCriterion("direct_pay is null");
            return (Criteria) this;
        }

        public Criteria andDirectPayIsNotNull() {
            addCriterion("direct_pay is not null");
            return (Criteria) this;
        }

        public Criteria andDirectPayEqualTo(BigDecimal value) {
            addCriterion("direct_pay =", value, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayNotEqualTo(BigDecimal value) {
            addCriterion("direct_pay <>", value, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayGreaterThan(BigDecimal value) {
            addCriterion("direct_pay >", value, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("direct_pay >=", value, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayLessThan(BigDecimal value) {
            addCriterion("direct_pay <", value, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayLessThanOrEqualTo(BigDecimal value) {
            addCriterion("direct_pay <=", value, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayIn(List<BigDecimal> values) {
            addCriterion("direct_pay in", values, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayNotIn(List<BigDecimal> values) {
            addCriterion("direct_pay not in", values, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("direct_pay between", value1, value2, "directPay");
            return (Criteria) this;
        }

        public Criteria andDirectPayNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("direct_pay not between", value1, value2, "directPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayIsNull() {
            addCriterion("indirect_pay is null");
            return (Criteria) this;
        }

        public Criteria andIndirectPayIsNotNull() {
            addCriterion("indirect_pay is not null");
            return (Criteria) this;
        }

        public Criteria andIndirectPayEqualTo(BigDecimal value) {
            addCriterion("indirect_pay =", value, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayNotEqualTo(BigDecimal value) {
            addCriterion("indirect_pay <>", value, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayGreaterThan(BigDecimal value) {
            addCriterion("indirect_pay >", value, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("indirect_pay >=", value, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayLessThan(BigDecimal value) {
            addCriterion("indirect_pay <", value, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayLessThanOrEqualTo(BigDecimal value) {
            addCriterion("indirect_pay <=", value, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayIn(List<BigDecimal> values) {
            addCriterion("indirect_pay in", values, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayNotIn(List<BigDecimal> values) {
            addCriterion("indirect_pay not in", values, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("indirect_pay between", value1, value2, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("indirect_pay not between", value1, value2, "indirectPay");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountIsNull() {
            addCriterion("indirect_pay_count is null");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountIsNotNull() {
            addCriterion("indirect_pay_count is not null");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountEqualTo(Integer value) {
            addCriterion("indirect_pay_count =", value, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountNotEqualTo(Integer value) {
            addCriterion("indirect_pay_count <>", value, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountGreaterThan(Integer value) {
            addCriterion("indirect_pay_count >", value, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("indirect_pay_count >=", value, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountLessThan(Integer value) {
            addCriterion("indirect_pay_count <", value, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountLessThanOrEqualTo(Integer value) {
            addCriterion("indirect_pay_count <=", value, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountIn(List<Integer> values) {
            addCriterion("indirect_pay_count in", values, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountNotIn(List<Integer> values) {
            addCriterion("indirect_pay_count not in", values, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountBetween(Integer value1, Integer value2) {
            addCriterion("indirect_pay_count between", value1, value2, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andIndirectPayCountNotBetween(Integer value1, Integer value2) {
            addCriterion("indirect_pay_count not between", value1, value2, "indirectPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountIsNull() {
            addCriterion("direct_pay_count is null");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountIsNotNull() {
            addCriterion("direct_pay_count is not null");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountEqualTo(Integer value) {
            addCriterion("direct_pay_count =", value, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountNotEqualTo(Integer value) {
            addCriterion("direct_pay_count <>", value, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountGreaterThan(Integer value) {
            addCriterion("direct_pay_count >", value, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("direct_pay_count >=", value, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountLessThan(Integer value) {
            addCriterion("direct_pay_count <", value, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountLessThanOrEqualTo(Integer value) {
            addCriterion("direct_pay_count <=", value, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountIn(List<Integer> values) {
            addCriterion("direct_pay_count in", values, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountNotIn(List<Integer> values) {
            addCriterion("direct_pay_count not in", values, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountBetween(Integer value1, Integer value2) {
            addCriterion("direct_pay_count between", value1, value2, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andDirectPayCountNotBetween(Integer value1, Integer value2) {
            addCriterion("direct_pay_count not between", value1, value2, "directPayCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountIsNull() {
            addCriterion("fav_shop_count is null");
            return (Criteria) this;
        }

        public Criteria andFavShopCountIsNotNull() {
            addCriterion("fav_shop_count is not null");
            return (Criteria) this;
        }

        public Criteria andFavShopCountEqualTo(Integer value) {
            addCriterion("fav_shop_count =", value, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountNotEqualTo(Integer value) {
            addCriterion("fav_shop_count <>", value, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountGreaterThan(Integer value) {
            addCriterion("fav_shop_count >", value, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("fav_shop_count >=", value, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountLessThan(Integer value) {
            addCriterion("fav_shop_count <", value, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountLessThanOrEqualTo(Integer value) {
            addCriterion("fav_shop_count <=", value, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountIn(List<Integer> values) {
            addCriterion("fav_shop_count in", values, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountNotIn(List<Integer> values) {
            addCriterion("fav_shop_count not in", values, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountBetween(Integer value1, Integer value2) {
            addCriterion("fav_shop_count between", value1, value2, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavShopCountNotBetween(Integer value1, Integer value2) {
            addCriterion("fav_shop_count not between", value1, value2, "favShopCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountIsNull() {
            addCriterion("fav_item_count is null");
            return (Criteria) this;
        }

        public Criteria andFavItemCountIsNotNull() {
            addCriterion("fav_item_count is not null");
            return (Criteria) this;
        }

        public Criteria andFavItemCountEqualTo(Integer value) {
            addCriterion("fav_item_count =", value, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountNotEqualTo(Integer value) {
            addCriterion("fav_item_count <>", value, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountGreaterThan(Integer value) {
            addCriterion("fav_item_count >", value, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("fav_item_count >=", value, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountLessThan(Integer value) {
            addCriterion("fav_item_count <", value, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountLessThanOrEqualTo(Integer value) {
            addCriterion("fav_item_count <=", value, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountIn(List<Integer> values) {
            addCriterion("fav_item_count in", values, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountNotIn(List<Integer> values) {
            addCriterion("fav_item_count not in", values, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountBetween(Integer value1, Integer value2) {
            addCriterion("fav_item_count between", value1, value2, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andFavItemCountNotBetween(Integer value1, Integer value2) {
            addCriterion("fav_item_count not between", value1, value2, "favItemCount");
            return (Criteria) this;
        }

        public Criteria andCreatedIsNull() {
            addCriterion("created is null");
            return (Criteria) this;
        }

        public Criteria andCreatedIsNotNull() {
            addCriterion("created is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedEqualTo(Date value) {
            addCriterion("created =", value, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedNotEqualTo(Date value) {
            addCriterion("created <>", value, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedGreaterThan(Date value) {
            addCriterion("created >", value, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedGreaterThanOrEqualTo(Date value) {
            addCriterion("created >=", value, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedLessThan(Date value) {
            addCriterion("created <", value, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedLessThanOrEqualTo(Date value) {
            addCriterion("created <=", value, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedIn(List<Date> values) {
            addCriterion("created in", values, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedNotIn(List<Date> values) {
            addCriterion("created not in", values, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedBetween(Date value1, Date value2) {
            addCriterion("created between", value1, value2, "created");
            return (Criteria) this;
        }

        public Criteria andCreatedNotBetween(Date value1, Date value2) {
            addCriterion("created not between", value1, value2, "created");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeIsNull() {
            addCriterion("purchased_time is null");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeIsNotNull() {
            addCriterion("purchased_time is not null");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeEqualTo(Date value) {
            addCriterion("purchased_time =", value, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeNotEqualTo(Date value) {
            addCriterion("purchased_time <>", value, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeGreaterThan(Date value) {
            addCriterion("purchased_time >", value, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("purchased_time >=", value, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeLessThan(Date value) {
            addCriterion("purchased_time <", value, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeLessThanOrEqualTo(Date value) {
            addCriterion("purchased_time <=", value, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeIn(List<Date> values) {
            addCriterion("purchased_time in", values, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeNotIn(List<Date> values) {
            addCriterion("purchased_time not in", values, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeBetween(Date value1, Date value2) {
            addCriterion("purchased_time between", value1, value2, "purchasedTime");
            return (Criteria) this;
        }

        public Criteria andPurchasedTimeNotBetween(Date value1, Date value2) {
            addCriterion("purchased_time not between", value1, value2, "purchasedTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}